package me.zhao.subscribe.weatherSubscribe;

/**
 * 这是一个观察者接口，定义一个更新的接口给那些在目标发生改变时被通知的对象
 */
public interface Observer {
	/**
	 * 更新的接口
	 * 拉模型：观察者主动到目标对象中获取，从目标对象中拉取部分少量信息，通常要把目标对象传给观察者
	 * @param subject 传入的目标对象，方便获取相应目标对象的状态
	 */
	public void update(WeatherSubject subject);
	
	/**
	 * 更新的接口
	 * 推模型：将信息推给订阅者，不管观察者/订阅者是否需要，不需要把目标对象传给观察者，按需传入信息（如天气信息）
	 * @param subject 传入的目标对象，方便获取相应目标对象的状态
	 */
	public void updatePush(String weatherContent);
}
